home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO016.dsk / STARTUP.bas < prev   
BASIC Source File  |  2012-02-16  |  11KB  |  268 lines

  1. 0  REM "FrEdWriter
  2. 1  REM "Version 4   12/6/85
  3. 2  REM "by Al Rogers, San Diego<CTRL-J><CTRL-J>
  4. 3  REM "FreeWriter (c) Paul Lutus 1984
  5. 4  REM "ProDOS (c) Apple 1983<CTRL-J><CTRL-J>
  6. 10  REM ***********************
  7. 11  REM *PROGRAM MAY BE COPIED*
  8. 12  REM * FOR EDUCATIONAL USE *
  9. 13  REM * BUT MAY NOT BE SOLD *
  10. 14  REM *(C) CUE, INC SOFTSWAP*
  11. 15  REM *        1986         *
  12. 16  REM ***********************<CTRL-J><CTRL-J><CTRL-J><CTRL-J>
  13. 24 D$ =  CHR$(4): PRINT  CHR$(21): DIM MNTH$(12)
  14. 25  TEXT : NORMAL : HOME 
  15. 26 BELL$ =  CHR$(7) + CHR$(7)
  16. 27 BL$ = "                                      "
  17. 28 S1$ = "***************************************"
  18. 29 S2$ = "*                                     *"
  19. 30 MO$ = "???JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
  20. 31  RESTORE : FOR J = 1 TO 12: READ MNTH$(J): NEXT 
  21. 34  DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE
  22. 37  DATA JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER 
  23. 43  FOR J = 769 TO 779: READ A: POKE J,A: NEXT : REM SETUP BOOLEAN MASK FOR MACHINE ID BYTE
  24. 44  DATA 173,152,191,45,0,3,141,0,3,96,96
  25. 46  POKE 768,2: CALL 769:C80 =  PEEK(768): REM  0=NO 80 COL CARD,2=YES 80 COL CARD
  26. 49  POKE 768,196: CALL 769:APPLE =  PEEK(768)
  27. 65  ONERR  GOTO 9500
  28. 70  PRINT D$"BLOAD /FRED/FRED/APPLEIO"
  29. 90  GOSUB 100
  30. 94  IF APPLE = 0  OR APPLE = 64  THEN C80 = 0: GOSUB 8000: REM NO 80COL CARD
  31. 95  GOTO 2000
  32. 100  REM <CTRL-J><CTRL-J>READ DATE/TIME<CTRL-J><CTRL-J>
  33. 110 MI =  PEEK(49042)
  34. 120 HH =  PEEK(49043)
  35. 130 PM = 0: IF HH >11  THEN PM = 1
  36. 135  IF HH >12  THEN HH = HH -12
  37. 140  IF HH = 0  THEN HH = 12
  38. 150 DD =  PEEK(49040) - INT( PEEK(49040)/32) *32
  39. 155 YY =  INT( PEEK(49041)/2)
  40. 160 MM = ( PEEK(49041) -YY *2) *8 + INT( PEEK(49040)/32)
  41. 170 MM$ = MNTH$(MM)
  42. 180  RETURN :<CTRL-J><CTRL-J><CTRL-J>
  43. 200  REM 
  44. 210  HOME 
  45. 220  PRINT S1$: PRINT S2$
  46. 230  PRINT "*         SYSTEM DATE AND TIME        *"
  47. 240  PRINT S2$: PRINT S1$
  48. 250  VTAB 10
  49. 255  PRINT "       THE CURRENT SETTINGS ARE:": PRINT : PRINT 
  50. 300  REM <CTRL-J><CTRL-J>
  51. 305  PRINT "          DATE: ";
  52. 310  IF DD = 0  THEN  PRINT "<NO DATE>": GOTO 325
  53. 315  PRINT MM$" "DD", 19";: IF YY <10  THEN  PRINT "0";
  54. 320  PRINT YY
  55. 325  PRINT 
  56. 330  PRINT "          TIME: ";
  57. 335  IF HH = 12  AND MI = 0  AND DD = 0  THEN  PRINT "<NO TIME>": GOTO 370
  58. 340  IF HH <10  THEN  PRINT "0";
  59. 345  PRINT HH;":";
  60. 350  IF MI <10  THEN  PRINT "0";
  61. 355  PRINT MI;
  62. 360  IF PM = 1  THEN  PRINT "  PM"
  63. 365  IF PM = 0  THEN  PRINT "  AM"
  64. 370  RETURN :<CTRL-J><CTRL-J><CTRL-J>
  65. 400  REM <CTRL-J><CTRL-J>
  66. 420  VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 4: PRINT "ENTER MONTH:";
  67. 430 A$ = " "
  68. 450  HTAB 17: PRINT "MMM";: HTAB 17:COUNT = 1:M1$ = ""
  69. 460  GET A$: IF  ASC(A$) >96  THEN A$ =  CHR$( ASC(A$) -32)
  70. 465  IF  ASC(A$) = 27  THEN  RETURN 
  71. 466  IF  ASC(A$) = 13  THEN 910
  72. 470 M1$ = M1$ +A$::MM = 4
  73. 480  IF M1$ =  MID$ (MO$,MM,COUNT)  THEN  GOTO 510
  74. 490 MM = MM +3: IF MM <39  THEN  GOTO 480
  75. 500  GOTO 450
  76. 510  PRINT A$;:COUNT = COUNT +1: IF COUNT <4  THEN  GOTO 460
  77. 520 MM = (MM -1)/3
  78. 530  VTAB 13: HTAB 17: PRINT MNTH$(MM)" ";:HT =  PEEK(36) +1: CALL  -868
  79. 600  REM <CTRL-J><CTRL-J>
  80. 610  VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 6: PRINT "ENTER DAY:";
  81. 620  IF  ASC(A$) = 27  THEN  RETURN 
  82. 625  HTAB 17: PRINT "DD";: HTAB 17
  83. 630  GET A$: IF (A$ <"0")  OR (A$ >"3") GOTO 620
  84. 640 DD =  VAL(A$): PRINT A$;
  85. 650  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 620
  86. 655 DD = DD *10 + VAL(A$): PRINT A$;
  87. 660  IF DD >31  OR DD <1 GOTO 620
  88. 670  VTAB 13: HTAB HT: PRINT DD", 19";:HT =  PEEK(36) +1
  89. 700  REM <CTRL-J><CTRL-J>
  90. 710  VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 5: PRINT "ENTER YEAR:";
  91. 720  IF  ASC(A$) = 27  THEN  RETURN 
  92. 730  HTAB 17: PRINT "YY";: HTAB 17
  93. 740  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 720
  94. 750 YY =  VAL(A$): PRINT A$;
  95. 760  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 720
  96. 770 YY = YY *10 + VAL(A$): PRINT A$
  97. 780  VTAB 13: HTAB HT: IF YY <10  THEN  PRINT "0";
  98. 790  PRINT YY
  99. 800  REM <CTRL-J><CTRL-J>
  100. 810  VTAB 18: HTAB 2: PRINT BL$
  101. 820  VTAB 18: PRINT "             CORRECT? Y/N ";
  102. 830  GET A$
  103. 850  IF A$ = "N"  OR A$ = "n"  THEN 400
  104. 855  IF A$ < >"y"  AND A$ < >"Y"  THEN 830
  105. 860  VTAB 18: HTAB 2: PRINT BL$: REM <CTRL-J><CTRL-J><CTRL-J>
  106. 900  REM <CTRL-J><CTRL-J>
  107. 910  VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 5: PRINT "ENTER HOUR:";
  108. 920  IF  ASC(A$) = 27  THEN  RETURN 
  109. 925  HTAB 17: PRINT "HH";: HTAB 17
  110. 930  GET A$: IF (A$ <"0")  OR (A$ >"1") GOTO 920
  111. 940 HH =  VAL(A$): PRINT A$;
  112. 950  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 920
  113. 960 HH = 10 *HH + VAL(A$): PRINT A$;
  114. 970  IF HH >12  OR HH <1  THEN 910
  115. 980  VTAB 15: HTAB 17:: IF HH <10  THEN  PRINT "0";
  116. 990  PRINT HH":       "
  117. 1000  REM <CTRL-J><CTRL-J>
  118. 1010  IF  ASC(A$) = 27  THEN  RETURN 
  119. 1020  VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 3: PRINT "ENTER MINUTE:";
  120. 1030  HTAB 17: PRINT "MM";: HTAB 17
  121. 1040  GET A$: IF (A$ <"0")  OR (A$ >"5") GOTO 1010
  122. 1050 MI =  VAL(A$): PRINT A$;
  123. 1060  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 1010
  124. 1070 MI = 10 *MI + VAL(A$): PRINT A$;
  125. 1080  IF MI >59 GOTO 1010
  126. 1090  VTAB 15: HTAB 20: IF MI <10  THEN  PRINT 0;
  127. 1095  PRINT MI
  128. 1100  REM <CTRL-J><CTRL-J>
  129. 1120  VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 1: PRINT "ENTER AM OR PM:";
  130. 1130  HTAB 17: PRINT "?M";: HTAB 17
  131. 1135  IF  ASC(A$) = 27  THEN  RETURN 
  132. 1140  GET A$: IF A$ = "a"  THEN A$ = "A"
  133. 1141  IF A$ = "p"  THEN A$ = "P"
  134. 1150  IF A$ < >"A"  AND A$ < >"P"  THEN 1135
  135. 1155  PRINT A$;
  136. 1160  VTAB 15: HTAB 24: PRINT A$"M"
  137. 1170 P$ = A$
  138. 1400  REM 
  139. 1405  VTAB 17: PRINT : PRINT "              CORRECT? Y/N ";
  140. 1410  IF  ASC(A$) = 27  THEN  RETURN 
  141. 1420  GET A$
  142. 1430  IF (A$ = "N")  OR (A$ = "n")  THEN 900
  143. 1440  IF (A$ < >"Y")  AND (A$ < >"y")  THEN 1410
  144. 1445  VTAB 18: HTAB 2: PRINT BL$
  145. 1450  VTAB 15: HTAB 8: PRINT "     "
  146. 1470  REM <CTRL-J><CTRL-J>
  147. 1490  POKE 49041,YY *2 +(MM >7)
  148. 1500  IF MM >7  THEN  POKE 49040,(MM -8) *32 +DD
  149. 1510  IF MM <8  THEN  POKE 49040,MM *32 +DD
  150. 1530  REM <CTRL-J><CTRL-J>
  151. 1550  IF HH = 12  THEN HH = 0
  152. 1560  IF P$ = "P"  THEN HH = HH +12
  153. 1570  POKE 49043,HH: POKE 49042,MI
  154. 1575  GOSUB 100
  155. 1580  RETURN :<CTRL-J><CTRL-J><CTRL-J>
  156. 2000  REM MAIN
  157. 2005  HOME : POKE 216,0
  158. 2010  PRINT S1$: PRINT S2$:
  159. 2020  PRINT "*              FrEdWriter             *": PRINT S2$
  160. 2025  PRINT "*         V.4 December 6, 1985        *": PRINT S2$
  161. 2030  PRINT "*         MAIN  PROGRAM  MENU         *"
  162. 2035  PRINT S2$: PRINT S1$: PRINT 
  163. 2040  GOSUB 300: REM PRINT DATE & TIME   
  164. 2050 B$ = "":LMIT$ = "7"
  165. 2055  NORMAL : VTAB 14: PRINT 
  166. 2056  PRINT "    1.  Read This First"
  167. 2060  PRINT "    2.  Start FrEdWriter"
  168. 2065  PRINT "    3.  Set Date and Time"
  169. 2070  PRINT "    4.  Format a New Disk"
  170. 2080  PRINT "    5.  Copy a Disk"
  171. 2090  PRINT "    6.  View, Delete or Copy Document"
  172. 2095  PRINT "    7.  Credits"
  173. 3020  VTAB 23: HTAB 4: INVERSE : PRINT "TYPE YOUR CHOICE:";: NORMAL : CALL  -868
  174. 3025  IF B$ > = "1"  AND B$ < = LMIT$  THEN A$ = B$:B$ = "": GOTO 3035
  175. 3030  GET A$: IF A$ =  CHR$(3)  THEN  TEXT : HOME : END 
  176. 3031  IF A$ <"1"  OR A$ >LMIT$  THEN 3030
  177. 3035 VT =  VAL(A$)
  178. 3040  VTAB 13 +VT: PRINT : INVERSE : PRINT "----->"
  179. 3050  VTAB 23: HTAB 4: INVERSE : PRINT " PRESS RETURN TO PROCEED";: NORMAL 
  180. 3055  IF VT = 2  AND C80  THEN 4200: REM CHOOSE 40/80 COL
  181. 3060  GET B$: IF B$ =  CHR$(13)  OR B$ = A$  THEN 3070
  182. 3065  GOTO 2055
  183. 3070 A =  VAL(A$):A$ = ""
  184. 3080  ONERR  GOTO 9500
  185. 4000  ON A GOTO 4100,4295,4300,4400,4500,4600,4700
  186. 4010  GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
  187. 4100  GOSUB 5000
  188. 4110  GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
  189. 4200  REM 
  190. 4230  VTAB 13 +VT -1: PRINT 
  191. 4235  PRINT BL$: PRINT BL$: PRINT BL$
  192. 4240  VTAB 13 +VT -1: CALL  -958: PRINT 
  193. 4245  HTAB 13: PRINT "/ Press ";: INVERSE : PRINT "4";: NORMAL : PRINT " for 40 Columns"
  194. 4250  PRINT "FrEdWriter <"
  195. 4255  HTAB 13: PRINT "\ Press ";: INVERSE : PRINT "8";: NORMAL : PRINT " for 80 Columns"
  196. 4260  POKE 49168,0: WAIT 49152,128: POKE 49168,0:A$ =  CHR$( PEEK(49152))
  197. 4265  PRINT : PRINT 
  198. 4270  IF A$ = "4"  THEN  PRINT "    Loading 40 Column FrEdWriter...": GOTO 4295
  199. 4275  IF A$ = "8"  THEN  PRINT "    Loading 80 Column FrEdWriter...": GOTO 4295
  200. 4280  VTAB 14: CALL  -958: GOTO 2050
  201. 4295  ONERR  GOTO 9500
  202. 4296  PRINT D$"- /FRED/FRED/FRED":<CTRL-J><CTRL-J><CTRL-J>
  203. 4300  REM 
  204. 4310  GOSUB 200: GOSUB 400
  205. 4320  GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
  206. 4400  REM 
  207. 4410  HOME : VTAB 10: PRINT 
  208. 4420  PRINT D$"- /FRED/FRED/HYPER.FORMAT"
  209. 4430  GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
  210. 4500  REM 
  211. 4505  HOME : VTAB 5: PRINT "REMINDER:  In order to COPY a disk with"
  212. 4510  PRINT "this program, you MUST have two disk"
  213. 4515  PRINT "drives and the target disk MUST be"
  214. 4520  PRINT "pre-formatted. (You may use the FORMAT"
  215. 4525  PRINT "option from the main menu to do that.)"
  216. 4530  PRINT : PRINT : PRINT : PRINT 
  217. 4560 H = 10
  218. 4565  INVERSE : HTAB H: PRINT "PRESS RETURN TO COPY": NORMAL 
  219. 4566  PRINT : HTAB H +1: PRINT "PRESS ESC TO ABORT";
  220. 4570  GET A$: IF A$ < > CHR$(13)  THEN 4580
  221. 4575  PRINT D$"-/FRED/FRED/COPYALL"
  222. 4580  GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
  223. 4600  REM 
  224. 4610  HOME : VTAB 10
  225. 4620  PRINT D$"EXEC /FRED/FRED/MENU.EXEC"
  226. 4630  END : REM <CTRL-J><CTRL-J><CTRL-J>
  227. 4700  GOSUB 6000
  228. 4710  GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
  229. 5000  REM 
  230. 5010 A$ = "HELP": GOTO 6050:<CTRL-J><CTRL-J><CTRL-J>
  231. 6000  REM 
  232. 6010 A$ = "CREDITS"
  233. 6050  REM TEXT INPUT ROUTINE
  234. 6051  NORMAL 
  235. 6052  VTAB 22: PRINT : CALL  -958: HTAB 8: PRINT "WORKING.....";
  236. 6056  IF  PEEK(49152) = 155  THEN  RETURN 
  237. 6100  PRINT D$"CLOSE": PRINT D$"OPEN /FRED/FRED/TEXT": PRINT D$"READ /FRED/FRED/TEXT"
  238. 6105  ONERR  GOTO 9500
  239. 6110  CALL 768,B$: IF  PEEK(49152) = 155  THEN  PRINT D$"CLOSE": POKE 49168,0: RETURN 
  240. 6111  IF A$ < >B$  THEN 6110
  241. 6113  HOME 
  242. 6115  CALL 768,B$: IF B$ = ".PAGE"  THEN  GOSUB 7000: GOTO 6115
  243. 6120  IF B$ = "END"  THEN 6190
  244. 6125  PRINT B$
  245. 6130  GOTO 6115
  246. 6190  PRINT D$"CLOSE": GOSUB 7000: RETURN :<CTRL-J><CTRL-J><CTRL-J>
  247. 7000  VTAB 23: HTAB 5: INVERSE : PRINT "RETURN";: NORMAL : PRINT " TO CONTINUE; ";: INVERSE : PRINT "ESC";: NORMAL : PRINT " TO QUIT";
  248. 7010  POKE 49168,0: WAIT 49152,128: POKE 49168,0: IF  PEEK(49152) = 13  THEN  PRINT : HOME : RETURN 
  249. 7020  IF  PEEK(49152) = 27  THEN  PRINT D$"CLOSE": POP : RETURN 
  250. 7030  GOTO 7010:<CTRL-J><CTRL-J><CTRL-J>
  251. 8000  HOME 
  252. 8005  IF  PEEK(49152) = 155  THEN  RETURN 
  253. 8010  VTAB 10
  254. 8020  PRINT "GETTING APPLE II INFO....."
  255. 8030 A$ = "APPLEII"
  256. 8040  PRINT : PRINT : PRINT "(PRESS 'ESC' FOR MAIN MENU.)"
  257. 8050  GOSUB 6050
  258. 8060  RETURN :<CTRL-J><CTRL-J><CTRL-J>
  259. 9500 ER =  PEEK(222):LN =  PEEK(218) +256 * PEEK(219)
  260. 9505 DSK = 1: IF  PEEK(48944) >127  THEN DSK = 2
  261. 9510  PRINT : PRINT : PRINT 
  262. 9520  IF ER = 6  OR ER = 8  THEN  PRINT "CAN'T FIND FILE OR PATHNAME": PRINT : PRINT "PUT FRED DISK IN DRIVE 1": PRINT 
  263. 9530  IF ER = 5  THEN  PRINT "END OF DATA IN LINE "LN
  264. 9600  PRINT BELL$;: GET A$
  265. 9610  PRINT : POKE 216,0
  266. 9620  PRINT D$"CLOSE"
  267. 9625  IF LN = 70  THEN 70
  268. 9630  GOTO 2000